package cn.zymall.common.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

@Data
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@TableName(value = "merchant")
public class Merchant extends BaseEntity implements Serializable {
    /**
     * 店铺编号
     */
    @TableId(value = "MERCHANT_ID", type = IdType.AUTO)
    private Integer merchantId;

    /**
     * 店铺头像
     */
    @TableField(value = "MERCHANT_LOGO_IMG")
    private String merchantLogoImg;

    /**
     * 店铺公告
     */
    @TableField(value = "MERCHANT_NOTICE")
    private String merchantNotice;

    /**
     * 店铺描述
     */
    @TableField(value = "MERCHANT_DESC")
    private String merchantDesc;

    /**
     * 店铺评分(默认为0)
     */
    @TableField(value = "MERCHANT_SCORE")
    private Byte merchantScore;

    /**
     * 店铺关注数量(默认为0)
     */
    @TableField(value = "MERCHANT_ATTENTION")
    private Integer merchantAttention;

    /**
     * 店铺账号
     */
    @TableField(value = "MERCHANT_ACCOUNT")
    private String merchantAccount;

    /**
     * 店铺密码
     */
    @TableField(value = "MERCHANT_PASSWORD")
    private String merchantPassword;

    /**
     * 店主手机号
     */
    @TableField(value = "SHOPKEEPER_PHONE_NUMBER")
    private String shopkeeperPhoneNumber;

    /**
     * 店主名称
     */
    @TableField(value = "SHOPKEEPER_NAME")
    private String shopkeeperName;

    /**
     * 店铺名称
     */
    @TableField(value = "MERCHANT_NAME")
    private String merchantName;

    /**
     * 店主身份证号
     */
    @TableField(value = "SHOPKEEPER_CARD_ID")
    private String shopkeeperCardId;

    /**
     * 店铺营业执照图片地址
     */
    @TableField(value = "LICENSE_IMG")
    private String licenseImg;

    /**
     * 店主身份证头像面图片地址
     */
    @TableField(value = "REVERSE_CARD_IMG")
    private String reverseCardImg;

    /**
     * 店铺主营类目编号
     */
    @TableField(value = "MERCHANT_KINDS_ID")
    private Integer merchantKindsId;

    /**
     * 店铺类型编号
     */
    @TableField(value = "MERCHANT_TYPE_ID")
    private Byte merchantTypeId;

    /**
     * 审核人账号
     */
    @TableField(value = "CHECK_ADMIN_ACCOUNT")
    private String checkAdminAccount;

    /**
     * 店铺地址编号
     */
    @TableField(value = "MERCHANT_SITE_ID")
    private Integer merchantSiteId;

    /**
     * 店铺状态编号（未审核，启用，停用）
     */
    @TableField(value = "MERCHANT_STATUS_ID")
    private Byte merchantStatusId;

    /**
     * 入驻时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8")
    @TableField(value = "ENTER_TIME")
    private Date enterTime;

    /**
     * 钱包密码
     */
    @TableField(value = "BURSE_PASSWORD")
    private String bursePassword;

    /**
     * 钱包余额(默认为0.0)
     */
    @TableField(value = "BURSE_BALANCE")
    private Double burseBalance;

    /**
     * 店铺关键字
     */
    @TableField(value = "MERCHANT_KEYWORD")
    private String merchantKeyword;

    /**
     * 身份证反面地址
     */
    @TableField(value = "SITE_CARD_IMG")
    private String siteCardImg;

    /**
     * 创建人
     */
    @TableField(value = "CREATE_BY")
    private Integer createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8")
    @TableField(value = "CREATE_TIME")
    private Date createTime;

    /**
     * 更新人
     */
    @TableField(value = "UPDATE_BY")
    private Integer updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8")
    @TableField(value = "UPDATE_TIME")
    private Date updateTime;

    /**
     * 身份证证件期效
     */
    @TableField(value = "CARD_CERTIFICATE")
    private String cardCertificate;

    /**
     * 身份证结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8")
    @TableField(value = "CARD_END_TIME")
    private Date cardEndTime;

    /**
     * 执照证件期效
     */
    @TableField(value = "LICENSE_CERTIF_ICATE")
    private String licenseCertifIcate;

    /**
     * 执照结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8")
    @TableField(value = "LICENSE_END_TIME")
    private Date licenseEndTime;

    @TableField(exist = false)
    private String storeTypeName;

    @TableField(exist = false)
    private MerchantAddress merchantAddress;

    private static final long serialVersionUID = 1L;

    public static final String COL_MERCHANT_ID = "MERCHANT_ID";

    public static final String COL_MERCHANT_LOGO_IMG = "MERCHANT_LOGO_IMG";

    public static final String COL_MERCHANT_NOTICE = "MERCHANT_NOTICE";

    public static final String COL_MERCHANT_DESC = "MERCHANT_DESC";

    public static final String COL_MERCHANT_SCORE = "MERCHANT_SCORE";

    public static final String COL_MERCHANT_ATTENTION = "MERCHANT_ATTENTION";

    public static final String COL_MERCHANT_ACCOUNT = "MERCHANT_ACCOUNT";

    public static final String COL_MERCHANT_PASSWORD = "MERCHANT_PASSWORD";

    public static final String COL_SHOPKEEPER_PHONE_NUMBER = "SHOPKEEPER_PHONE_NUMBER";

    public static final String COL_SHOPKEEPER_NAME = "SHOPKEEPER_NAME";

    public static final String COL_MERCHANT_NAME = "MERCHANT_NAME";

    public static final String COL_SHOPKEEPER_CARD_ID = "SHOPKEEPER_CARD_ID";

    public static final String COL_LICENSE_IMG = "LICENSE_IMG";

    public static final String COL_REVERSE_CARD_IMG = "REVERSE_CARD_IMG";

    public static final String COL_MERCHANT_KINDS_ID = "MERCHANT_KINDS_ID";

    public static final String COL_MERCHANT_TYPE_ID = "MERCHANT_TYPE_ID";

    public static final String COL_CHECK_ADMIN_ACCOUNT = "CHECK_ADMIN_ACCOUNT";

    public static final String COL_MERCHANT_SITE_ID = "MERCHANT_SITE_ID";

    public static final String COL_MERCHANT_STATUS_ID = "MERCHANT_STATUS_ID";

    public static final String COL_ENTER_TIME = "ENTER_TIME";

    public static final String COL_BURSE_PASSWORD = "BURSE_PASSWORD";

    public static final String COL_BURSE_BALANCE = "BURSE_BALANCE";

    public static final String COL_MERCHANT_KEYWORD = "MERCHANT_KEYWORD";

    public static final String COL_SITE_CARD_IMG = "SITE_CARD_IMG";

    public static final String COL_CREATE_BY = "CREATE_BY";

    public static final String COL_CREATE_TIME = "CREATE_TIME";

    public static final String COL_UPDATE_BY = "UPDATE_BY";

    public static final String COL_UPDATE_TIME = "UPDATE_TIME";

    public static final String COL_CARD_CERTIFICATE = "CARD_CERTIFICATE";

    public static final String COL_CARD_END_TIME = "CARD_END_TIME";

    public static final String COL_LICENSE_CERTIF_ICATE = "LICENSE_CERTIF_ICATE";

    public static final String COL_LICENSE_END_TIME = "LICENSE_END_TIME";
}
